'''
一般在 GET 请求中我们使用查询字符串(query string)来进行参数传递，在requests 库中使用方法如下：
    参数      类型      作用
    params     字典       url 为基准的 url 地址，不包含查询参数；该方法会自动对 params 字典编码,然后和 url 拼接

在 Post 请求中，一般参数都在请求体（Request body）中传递，在 requests库中使用方法如下：
    参数      类型      作用
    data        字典      作为向服务器提供或提交资源时提交，主要用于post 请求
    json        字典      json 格式的数据， json 合适在相关的 html

如果你想为请求添加 HTTP 头部，只要简单地传递一个 dict 给 headers 参数就可以了。
    参数      类型      作用
    headers     字典      请求头，发送请求的过程中请求的附加内容携带着一些必要的参数
'''
import requests
import re

# # 构造请求头
# base_url = r'http://httpbin.org/'
# url = base_url + 'get'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
}
# resp = requests.get(url, headers=headers)
# print(resp.text)
#
# # 案例：豆瓣电影
# url = r'https://movie.douban.com/'
# resp = requests.get(url, headers=headers)
# print(resp.status_code)  # 添加请求头，响应就正常了
# # print(resp.text)

# 构造 get 请求参数
# 百度案例
url = r'http://www.baidu.com/s'  # 如果请求不到，不妨试试 http
data = {'wd': '郑州天气'}
resp = requests.get(url, params=data, headers=headers)
resp.encoding = 'utf-8'
patt = r'<title>(.*?)</title>'
title = re.findall(patt, resp.text)
print(title)

# # 构造 post 请求的参数 - data
# url = base_url + 'post'
# data = {'param1': 'hello', 'param2': 'world'}
# resp = requests.post(url, data=data)
# print(resp.text)
#
# # 构造 post 请求的参数 - json
# url = base_url + 'post'
# data = {'param1': 'hello', 'param2': 'world'}
# resp = requests.post(url, json=data)
# print(resp.text)
#
# # 案例1：百度搜索
# # 案例2：手机号归属地 http://apis.juhe.cn/mobile/get
# url = r'http://apis.juhe.cn/mobile/get'
# headers = {
#     'Content-Type': 'application/x-www-form-urlencoded'
# }
# data = {'phone': '18530930585', 'key': '1664211c9e377281f3426097336b352c'}
# resp = requests.get(url, params=data)
# # print(resp.text)
# resp = resp.json()
# print(resp['resultcode'])
# print(resp['result']['city'])
#
# # 案例3：天气查询 http://apis.juhe.cn/simpleWeather/query 一个get 一个post
# url = r'http://apis.juhe.cn/simpleWeather/query'
# headers = {
#     'Content-Type': 'application/x-www-form-urlencoded'
# }
# data = {'city': '郑州', 'key': '3aed1f60ec6f14a4c320314ebc144cdf'}
# resp = requests.post(url, data=data)
# print(resp.text)
